© Martin Kot

31.3.2000

 

Třída Class

Ukázkový program

   

Přehled metod

Třída Class se nachází v balíku java.lang a je podtřídou třídy java.lang.Object. Tato třída nemá žádné standardní bezprostřední podtřídy a implementuje rozhraní java.io.Serializable.

Instance třídy Class se používají k popisu všech datových typů, tedy primitivních i referenčních. Třída byla ve verzi jazyka Java 1.1 upravena tak, aby mohla poskytovat podporu pro aplikační programátorské rozhraní Reflection API. Předcházející verze poskytovaly pouze popis referenčních typů v době provádění programu.

Třída Class poskytuje významné informace o datových typech. Například s pomocí metody isPrimitive() lze určit, zda objekt popisuje typ pole. Jestliže objekt třídy Class popisuje třídu nebo rozhraní, pak zde existuje řada metod vracejících informace o polích, metodách nebo konstruktorech. Tyto informace se vracejí v objektech :

java.lang.reflect.Field,

java.lang.reflect.Method,

java.lang.reflect.Constructor.

Existuje mnoho možností, jak je možno získat objekt třídy Class pro konkrétní datový typ.

Například:

Class f = float.class;

Class vect = java.util.Vector.class;

Například: Class v = Class.forName("java.util.vector");

Instanci třídy je možno vytvořit prostřednictvím metody newInstance() náležející objektu třídy Class, pokud má třída konstruktor, jenž neobsahuje žádné argumenty.

Třída Class nemá žádné veřejné konstruktory, a proto nemůže být explicitně instanciována. Objekty třídy Class se normálně vytvářejí prostřednictvím třídy ClassLoader nebo prostřednictvím objektu ClassLoader.

Seznam metod třídy Class

public String toString()

public static native Class forName(String className) throws ClassNotFoundException

public native Object newInstance() throws InstantiationException, IllegalAccessException

public native boolean isInstance(Object obj)

public native boolean isAssignableFrom(Class cls)

public native boolean isInterface()

public native boolean isArray()

public native boolean isPrimitive()

public native String getName()

public native ClassLoader getClassLoader()

public native Class getSuperclass()

public native Class[] getInterfaces()

public native Class getComponentType()

public native int getModifiers()

public native Object[] getSigners()

public Class getDeclaringClass()

public Class[] getClasses()

public Field[] getFields() throws SecurityException

public Method[] getMethods() throws SecurityException

public Constructor[] getConstructors() throws SecurityException

public Field getField(String name) throws NoSuchFieldException, SecurityException

public Method getMethod(String name, Class parameterTypes[]) throws NoSuchMethodException, SecurityException

public Constructor getConstructor(Class parameterTypes[]) throws NoSuchMethodException, SecurityException

public Class[] getDeclaredClasses() throws SecurityException

public Field[] getDeclaredFields() throws SecurityException

public Method[] getDeclaredMethods() throws SecurityException

public Constructor[] getDeclaredConstructors() throws SecurityException

public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException

public Method getDeclaredMethod(String name, Class parameterTypes[]) throws NoSuchMethodException, SecurityException

public Constructor getDeclaredConstructor(Class parameterTypes[]) throws NoSuchMethodException, SecurityException

public InputStream getResourceAsStream(String name)

public URL getResource(String name)